package com.ndp.fb.mongo.api;

import com.mongodb.DB;

/**
 * Created by Hermen on 2015/3/9.
 */
public interface IMongodbService {

    /**
     * @param db                 数据库实例
     * @param tableName          表名
     * @param data               数据
     * @param where              更新条件
     * @param shouldHandleECData 是否进行电商相关数据的特殊处理
     */
    void batchSaveOrUpdateWithoutHistory(DB db, String tableName, String data, String[] where, boolean shouldHandleECData);

    /**
     * @param db                 数据库实例
     * @param tableName          表名
     * @param data               数据
     * @param where              更新条件
     * @param historyDB          历史数据数据库实例
     * @param historyTableName   历史数据表明
     * @param shouldHandleECData 是否进行电商相关数据的特殊处理
     * @param historyTableField  历史数据保存的字段
     */
    void batchSaveOrUpdateWithHistory(DB db, String tableName, String data, String[] where, DB historyDB, String historyTableName, boolean shouldHandleECData, String... historyTableField);

    /**
     * 更新历史记录表
     *
     * @param historyDB
     * @param tableName
     * @param data
     * @param historyTableField
     */
    void updateHistory(DB historyDB, String tableName, String data, String... historyTableField);


    /**
     * 保存统计数据或者对统计数据进行+n处理
     *
     * @param db
     * @param tableName
     * @param data
     * @param where
     */
    void batchSaveOrIncreaseStatsData(DB db, String tableName, String data, String[] where);
}
